﻿/*
 ***************************************************************************
 * Microsoft Visual C# .NET
 * 名称：       Shpm.App.Input.Dao.HealthDiseaseDao
 * 类型：       DAO
 * 功能说明：   疾病种类数据访问对象
 * 作者：       王剑华
 * 创建日期：   2007/09/17
 * 修改日期     修改者      修改内容
 * 
 * 
 * ---
 ***************************************************************************
*/
using System;
using System.Data;
using System.Collections;
using Shpm.System.Db;
using Shpm.App.Input.Bean;
using Shpm.App.Commons.Db.Beans.Master;

namespace Shpm.App.Input.Dao
{
    public class HealthDiseaseDao : ShpmBaseDao
    {
        // 从数据字典中取得画面列表项内容
        public const string FIND_BY_CATALOG = "CommonDictionary.FindByCatalog";
        /** 取得疾病种类对象 */
        public const string GET_MEMBER_DISEASE = "HealthDiseaseBean.GetHealthDiseaseBean";
        /** 取得DISEASE_TYPE数据 */
        public const string FIND_DISEASE_TYPE = "HealthDiseaseBean.FindDiseaseTypeHealthDiseaseBean";
        /** 取得疾病种类与数据字典对比数据 */
        public const string FIND_DISEASE = "HealthDiseaseBean.FindDiseaseHealthDiseaseBean";
        public const string FIND_DISEASE_INFO = "HealthDiseaseBean.FindDiseaseInfo";
        /** 登录疾病种类对象 */
        public const string INS_MEMBER_DISEASE = "HealthDiseaseBean.InsHealthDiseaseBean";
        /** 更新疾病种类对象 */
        public const string UPD_MEMBER_DISEASE = "HealthDiseaseBean.UpdHealthDiseaseBean";
        /** 删除疾病种类对象 */
        public const string DEL_MEMBER_DISEASE = "HealthDiseaseBean.DelHealthDiseaseBean";

        public const string FIND_HEALTH_DISEASE = "HealthDiseaseBean.FindHealthDiseaseBean";

        public HealthDiseaseDao()
        {
        }
        /*
         *名称： FindByCatalog
         *功能： 取得数据字典列表对象。
         *参数： paramBean - 检索参数
         *返回： 数据字典列表 
         *说明： 从数据字典中取得画面列表项内容
        */
        public IList FindByCatalog(CommonDictionaryBean paramBean)
        {
            return base.QueryForList(FIND_BY_CATALOG, paramBean);
        }
        /*
        *名称： Load
        *功能： 取得疾病种类对象。
        *参数： paramBean - 检索参数
        *返回： 疾病种类对象 
        *说明： 
       */
        public HealthDiseaseBean Load(HealthDiseaseBean paramBean)
        {
            return (HealthDiseaseBean)QueryForObject(GET_MEMBER_DISEASE, paramBean);
        }


        /*
        *名称： FindHealthDisease
        *功能： 取得疾病种类对象。
        *参数： paramBean - 检索参数
        *返回： 疾病种类对象 
        *说明： 
       */
        public HealthDiseaseBean FindHealthDisease(HealthDiseaseBean paramBean)
        {
            return (HealthDiseaseBean)QueryForObject(FIND_HEALTH_DISEASE, paramBean);
        }
        

        /*
       *名称： LoadDiseaseType
       *功能： 取得DISEASETYPE对象数据。
       *参数： paramBean - 检索参数
       *返回： 疾病种类对象 
       *说明： 
      */
        public IList LoadDiseaseType(HealthDiseaseBean paramBean)
        {
            return base.QueryForList(FIND_DISEASE_TYPE, paramBean);
        }

        /*
        *名称： ChangeInt
        *功能：转换对象数据。
        *参数： paramBean - 检索参数
        *返回： 疾病种类对象 
        *说明： 
        */
        public HealthDiseaseBean ChangeInt(HealthDiseaseBean paramBean)
        {
            return (HealthDiseaseBean)QueryForObject(FIND_DISEASE, paramBean);
        }

        /*
        *名称： LoadDiseaseType
        *功能： 取得DISEASETYPE对象数据。
        *参数： paramBean - 检索参数
        *返回： 疾病种类对象 
        *说明： 
        */
        public HealthDiseaseBean findDiseaseInfo(HealthDiseaseBean paramBean)
        {
            return (HealthDiseaseBean)base.QueryForObject(FIND_DISEASE_INFO, paramBean);
        }

        /*
         *名称： Insert
         *功能： 登录疾病种类对象。
         *参数： paramBean - 登录对象
         *返回： 登录的对象
         *说明： 
        */
        public HealthDiseaseBean Insert(HealthDiseaseBean paramBean)
        {
            return (HealthDiseaseBean)base.Insert(INS_MEMBER_DISEASE, paramBean);
        }

        /*
         *名称： Delete
         *功能： 删除疾病种类对象。
         *参数： paramBean - 删除对象
         *返回： 删除记录数
         *说明：  delete 
        */
        public int Delete(HealthDiseaseBean paramBean)
        {
            return base.Delete(DEL_MEMBER_DISEASE, paramBean);
        }

        /*
        *名称： InsertUpdate
        *功能： 更新/登入疾病种类对象。
        *参数： paramBean - 更新对象
        *返回： 更新记录数
        *说明： 
       */
        public int InsertUpdate(HealthDiseaseBean paramBean, IList paramList)
        {
            try
            {
                int numInsert = 0;
                HealthDiseaseBean beanSG = null;

                // 开始事务 
                base.BeginTransaction();

                // 删除原有数据                
                beanSG = new HealthDiseaseBean();
                beanSG.MemberNo = paramBean.MemberNo;
                this.Delete(beanSG);

                // 登记记录
                for (int i = 0; i < paramList.Count; i++)
                {
                    beanSG = new HealthDiseaseBean();
                    beanSG = (HealthDiseaseBean)paramList[i];
                    if (this.FindHealthDisease(beanSG) == null)
                    {
                        this.Insert(beanSG);
                        numInsert++;
                    }
                }

                // 提交事务
                base.CommitTransaction();
                return numInsert;
            }
            catch (Exception e)
            {
                // 回滚事务
                base.RollBackTransaction();
                throw e;
            }


        }

        public int Update(HealthDiseaseBean bean)
        {
            return base.Update(UPD_MEMBER_DISEASE, bean);
        }
    }
}